<?php
$path=$_SERVER["DOCUMENT_ROOT"]."/Clase/php/FORO/clases/";
include_once ($path."BaseDatos.php");

class Tema {
	private $_titol;
	private $_text;
	private $_idUsuari;
	private $_idCategoria;
	private $_urlOK;
	private $urlOFF;
	
	public function __construct(){}
	
	public function addTema(){
		$conect = new BaseDatos();
		$consulta="SELECT NOW() as data";
		$e=$conect->prepare($consulta);
        $ex=$e->execute();
        while($row=$e->fetch(PDO::FETCH_ASSOC)) $data=$row["data"];
		$consulta="INSERT INTO `tema` (titol, text, id_usuari, id_categoria, valid, data, obert)" .
				" VALUES ('".$_REQUEST["titol"]."', '".$_REQUEST["text"]."', '".$_REQUEST["idUsuari"]."', '".
		$_REQUEST["idCategoria"]."','1','".$data."', '0')";
		$e=$conect->prepare($consulta);
        $ex=$e->execute();
        if (!$ex) return "Error 700: No se ha podido añadir el tema.";
		$consulta="select id from tema where id_usuari=".$_REQUEST["idUsuari"]." order by id ASC";
		$e=$conect->prepare($consulta);
		$ex=$e->execute();
		while($row=$e->fetch(PDO::FETCH_ASSOC)) header ("Location: tema.php?id=".$row["id"]);
	}
	
	public function printTema(){
		$consulta="Select (SELECT email FROM usuaris WHERE id=tema.id_usuari) as user_t, tema.titol, tema.text, tema.data,".
		" usuaris.nom, usuaris.id as idU, tema.id as idT, tema.obert from tema INNER JOIN usuaris".
		" WHERE tema.id_usuari=usuaris.id AND tema.id='".$_REQUEST["id"]."'";
		$conect = new BaseDatos();
		$sql=$conect->prepare($consulta);
        $e=$sql->execute();
        if (!$e) return "Error 701: No se ha podido mostrar el tema.";
		return $sql->fetch(PDO::FETCH_ASSOC);
	}
	
	public function printTemes(){
		$consulta="SELECT tema.id, tema.titol,(SELECT nom FROM usuaris WHERE tema.id_usuari=id) AS usuari,".
		" tema.data FROM tema INNER JOIN categoria WHERE tema.valid='1' AND categoria.id=tema.id_categoria".
		" AND categoria.id='".$_REQUEST["id"]."' AND tema.valid='1' ORDER BY tema.data DESC";
		$conect = new BaseDatos();
		$sql=$conect->prepare($consulta);
        $e=$sql->execute();
        if (!$e) return "Error 702: No hay temas.";
        $r="";
		while ($row=$sql->fetch(PDO::FETCH_ASSOC)){
        	$r.="<div class='resultat' onclick=\"goTo(".$row["id"].")\">".
          		"<div class=\"resultatItem\">".$row["titol"]."</div>".
          		"<div class=\"resultatItem\" style=\"margin-left:60%;\">".$row["usuari"]."</div>".
          		"<div class=\"resultatItem\" style=\"margin-left:75%;\">".$row["data"]."</div></div>";
        }
        return $r;
	}
	
	public function printTemesUser(){
		$consulta="Select tema.id, tema.titol,(SELECT nom FROM usuaris WHERE tema.id_usuari=id) AS usuari,".
				" tema.data FROM tema INNER JOIN categoria WHERE tema.valid='1' AND categoria.id=tema.id_categoria".
				" and tema.id_usuari='".$_REQUEST["id"]."'";
		$conect = new BaseDatos();
		$sql=$conect->prepare($consulta);
		//$sql->bindParam(':id' , $id);
		$e=$sql->execute();
		if (!$e) return "Error 702: No hay temas.";
		$r="";
		while ($row=$sql->fetch(PDO::FETCH_ASSOC)){
			$r.="<div class='resultat' onclick=\"goTo(".$row["id"].")\">".
					"<div class=\"resultatItem\">".$row["titol"]."</div>".
					"<div class=\"resultatItem\" style=\"margin-left:75%;\">".$row["data"]."</div></div>";
		}
		return $r;
	}
	
	public function printTemesUserComented(){
		$conect = new BaseDatos();
		$consulta="SELECT id_tema FROM missatge INNER JOIN tema WHERE missatge.id_tema=tema.id AND ".
		"missatge.id_usuari='".$_REQUEST["id"]."' AND tema.id_usuari!='".$_REQUEST["id"]."' GROUP BY id_tema";
		$sql=$conect->prepare($consulta);
		//$sql->bindParam(':id' , $id);
		$e=$sql->execute();
		if (!$e) return "No has comentado ningun tema.";
		foreach ($sql->fetch(PDO::FETCH_ASSOC) as $row["id"] => $id){
			$consulta2="SELECT id, titol, data FROM  `tema` WHERE id ='".$id."'";
			$sql2=$conect->prepare($consulta2);
			//$sql->bindParam(':id' , $id);
			$ex=$sql2->execute();
			if (!isset($r)) $r=$sql2->fetchALL(PDO::FETCH_ASSOC);
			else {
				$tmp=$sql2->fetchALL(PDO::FETCH_ASSOC);
				$r=array_merge($r,$tmp);
				unset($tmp);
			}
		}
		return $r;
	}
	
	public function countTemes(){
		$consulta="Select COUNT(id) as unitats from tema WHERE valid=1";
		$conect = new BaseDatos();
		$e=$conect->prepare($consulta);
        $e=$conect->execute();
        if ($e==0) return "Error 702: No hay temas.";
		return $e->fetchALL(PDO::FETCH_ASSOC);
	}
	
	public function dropTema($id){
		/*UPDATE table_name
		SET column1=value, column2=value2,...
		WHERE some_column=some_value*/
		$consulta="UPDATE tema SET valid=0 WHERE id=':id";
		$conect = new BaseDatos();
		$e=$this->_conect->prepare($consulta);
        $e=$this->_conect->execute(array(':id'=> $id));
        if ($e==0) return "Error 703: No se ha eliminado el tema.";
		header ("Location: ");
	}

	public function editTema($id){
		/*UPDATE table_name
			SET column1=value, column2=value2,...
		WHERE some_column=some_value*/
		$consulta="UPDATE tema SET (titol=':titol', text=':text') WHERE ID=':id'";
		$conect = new BaseDatos();
		$e=$this->_conect->prepare($consulta);
        $e=$this->_conect->execute(array(':id'=> $id,
        									':titol'=>$_REQUEST["titol"],
        									':text'=>$_REQUEST["text"]));
        if ($e==0) return "Error 704: No se ha modificado el temas";
		header("Location: tema?id=".$id);
	}
	
	public function tancaTema(){
		$consulta="UPDATE tema SET obert='1' WHERE id='".$_REQUEST["tanca"]."'";
		$conect = new BaseDatos();
		$e=$conect->prepare($consulta);
		$ex=$e->execute();
		$ex=$e->rowCount();
		if ($ex=="0") return "Error 718: No se ha cerrado el temaa";
	}
	
	public function obreTema(){
		$consulta="UPDATE tema SET obert='0' WHERE id='".$_REQUEST["obre"]."'";
		$conect = new BaseDatos();
		$e=$conect->prepare($consulta);
		$ex=$e->execute();
		$ex=$e->rowCount();
		if ($ex=="0") return "Error 719: No se ha abierto el tema";
		
	}
	
	public function borraTema(){
		$consulta="UPDATE tema SET valid='0' WHERE id='" . $_REQUEST["drop"] . "'";
		$conect = new BaseDatos();
		$e=$conect->prepare($consulta);
		$ex=$e->execute();
		$ex=$e->rowCount();
		if ($ex=="0") return "Error 720: No se ha borrado el tema";
	}
	
	public function printNomTema($id){
		$consulta="Select titol from tema WHERE id='".$id."'";
		$conect = new BaseDatos();
		$e=$conect->prepare($consulta);
        $ex=$e->execute();
        if (!$ex) return "Error 705: No se ha encontrado el tema";
		while ($row=$e->fetch(PDO::FETCH_ASSOC)) return $row["titol"];
	}
	
	public function setUrlOk($id){$this->_urlOK="Location: tema.php?id=".$id;}
	
	public function getUrlOk(){return $this->_urlOK;}
}
?>